#include <stdio.h>

#include "machine.h"

word machine_ret_register = 0;
word machine_env_register = 0;
word machine_stack[STACK_SIZE] = { 0 };
word machine_globals[GLOBALS_SIZE] = { 0 };
word machine_heap_a[HEAP_SIZE] = { 0 };
word machine_heap_b[HEAP_SIZE] = { 0 };

word *machine_from_heap = machine_heap_a;
word *machine_to_heap = NULL;

char *tag_name[] = {
  [tag_bool] = "bool",
  [tag_null] = "null",
  [tag_integer] = "integer",
  [tag_symbol] = "symbol",
  [tag_character] = "character",
  
  [tag_string] = "string",
  
  [tag_box] = "box",
  [tag_cons] = "cons",
  [tag_vector] = "vector",
  [tag_closure] = "closure",
  [tag_record] = "record",
};

